In operating systems and platforms, various technologies exist that relate to managing digital identities such as certificates, identities, tokens, keys, assertions, or credentials. Each developer of application programs often applies their own techniques for managing these certificates, identities, or credentials. Application programs therefore often manage and store their digital identities differently. This variation in techniques for managing the digital identities makes it more difficult for application programs to interface with the credentials. The individual application programs that store or interface with different digital identities often have difficulty interfacing with different types of digital identities associated with the different application programs.
Historically, the operating system and application program developers have protected digital identities using different methods, and have stored the digital identities in different locations. Networking aspects of the application programs make such protection of networked data and programs even more important and challenging since networked application programs typically have to be able to access data from certain prescribed locations. Application programs typically have to be aware of how to obtain data through the protection provided by digital identities, and be able to prove their validity at different locations within the operating system.